//
//  QBBseViewController.swift
//  Wei91BoiOS
//
//  Created by bing on 16/3/21.
//  Copyright © 2016年 bing. All rights reserved.
//

import UIKit

class QBBseViewController: UITableViewController {

    // 用户登录
    var userLogin = QBUserAccountViewModel.sharedInstance.userLogin
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        userLogin ? super.loadView() : setupVisitorView()

        // 在这里根据不同的控制器类型来设置不同的访客视图内容
        // is: 判断对象是否是某个类型
        
    }
    /// 设置访客视图
    func setupVisitorView() {
        
        view = visitorView
        
        //print("self:\(self)")
        // 设置访客视图代理
        // 当代理设置后，必须实现代理协议：UITableViewController,QBVisitorViewDelegate
        
        // 设置代理
        visitorView.delegate = self
        
        if (self is QBHomeViewController) {
            
            visitorView.startRotation()
            
        } else if (self is QBMessageViewController) {
            
            visitorView.setupVisitor("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
            
        } else if (self is QBDiscoverViewController) {
            
            visitorView.setupVisitor("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
            
        } else if (self is QBProfileViewController) {
            
            visitorView.setupVisitor("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        // 导航栏的按钮，不是根据导航控制器来，根据导航控制器当前正在显示的控制器相关
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickRegisterButton")
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登陆", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickLoginButton")
        
    }
    /*
    // MARK: - 实现协议的方法
    // 6.实现协议的方法
    func visitorViewDidClickRegisterButton() {
        
        let networkTool = QBNetworkTool.shardIntance
        
        print(networkTool)
        
    }
    
    func visitorViewDidClickLoginButton() {
    
        let networkTool = QBNetworkTool.shardIntance
        
        print(networkTool)
    }
    */
    lazy var visitorView: QBVisitorView = QBVisitorView()
}

// MARK: - extension扩展，可以在扩展里面实现协议，方便代码管理
extension QBBseViewController: QBVisitorViewDelegate {
    
    // 扩展里面不能存放存储属性
    // var name: String?   ==> OC NSString *_name
    
    // 扩展里面可以存放存储属性
    var name: String {
        
        get {
            
            return ""
        }
        set {
            
            
        }
    }
    
    // MARK: - 实现协议的方法
    // 6.实现协议的方法
    func visitorViewDidClickRegisterButton() {
        
        let networkTool = QBNetworkTool.shardIntance
        
        print(networkTool)
        
    }
    
    func visitorViewDidClickLoginButton() {
        
        // 弹出登录界面
        let oauth = QBOauthViewController()
        
        // Modal出控制器
        presentViewController( UINavigationController(rootViewController: oauth), animated: true, completion: nil)
    }
    
}
